package com.wu.client.utils;

import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wu.client.vo.res.PageResp;

import java.util.List;

/**
 * @author Cousin
 * @date 2025/3/21
 * @Description
 */
public class PageRespUtil {
    public static <T,M> PageResp<T> buildPageResp(Page<M> mybatisPage,Class<T> targetClass){
        PageResp<T> pageResp = new PageResp<>();
        List<M> records = mybatisPage.getRecords();
        List<T> items = BeanUtil.copyToList(records, targetClass);
        pageResp.setPage(Math.toIntExact(mybatisPage.getCurrent()));
        pageResp.setLimit(Math.toIntExact(mybatisPage.getSize()));
        pageResp.setTotal(mybatisPage.getTotal());
        pageResp.setItems(items);
        return pageResp;
    }
    public static <T>  PageResp<T> buildPageResp(Integer page, Integer limit, Long total, List<T> items){
        PageResp<T> pageResp =new PageResp<>();
        pageResp.setItems(items);
        pageResp.setTotal(total);
        pageResp.setPage(page);
        pageResp.setLimit(limit);
        return pageResp;
}
}
